package com.exam.project.business.service;

import java.util.List;

import com.exam.project.business.domain.Exam;
import com.exam.project.business.dto.ExamAnswerDto;
import com.exam.project.business.dto.ExamVo;
import com.exam.project.business.dto.SubmitScoreDto;
import com.exam.project.business.dto.UserDto;

/**
 * 考试表Service接口
 *
 * @author qiuwenbing
 * @date 2025-04-03
 */
public interface IExamService {
    /**
     * 查询考试表
     *
     * @param id 考试表主键
     * @return 考试表
     */
    public Exam selectExamById(Long id);

    /**
     * 查询考试表列表
     *
     * @param exam 考试表
     * @return 考试表集合
     */
    public List<Exam> selectExamList(Exam exam);

    /**
     * 新增考试表
     *
     * @param exam 考试表
     * @return 结果
     */
    public int insertExam(Exam exam);

    /**
     * 修改考试表
     *
     * @param exam 考试表
     * @return 结果
     */
    public int updateExam(Exam exam);

    /**
     * 批量删除考试表
     *
     * @param ids 需要删除的考试表主键集合
     * @return 结果
     */
    public int deleteExamByIds(Long[] ids);

    /**
     * 删除考试表信息
     *
     * @param id 考试表主键
     * @return 结果
     */
    public int deleteExamById(Long id);

    public ExamVo selectMyExamList(Long examId);

    ExamVo selectExamInfo(Long examId,Long userId);

    public Exam myExam();


    List<UserDto> queryChoose(Long examId);

    int queryIsChoose(Long userId,Long examId);

    void submitExam(ExamAnswerDto dto);

    void submitExamScore(SubmitScoreDto dto);
}
